package ocio.actions;  

import java.util.ArrayList;
import java.util.List;
import ocio.beans.Provincia;
import ocio.beans.Subtipo;
import ocio.utils.Constantes;
import ocio.utils.RellenoCombos;
import com.opensymphony.xwork2.ActionSupport;

/**
 * Recibe la petición para realizar una subscripción y gestiona el contenido de los combos
 * desplegables con las opciones de subscripción.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Subscripcion
 */
public class FormSubscripcionAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	

	private int idProvincia = 0;
	private String tipo = "Restaurantes";
	private int idSubtipo;
	private List<Provincia> listaProvincias = new ArrayList<Provincia>();
	private List<String> listaTipos = new ArrayList<String>();
	private List<Subtipo> listaSubtipos = new ArrayList<Subtipo>();


    /**
	 * Método execute() de la clase ActionSupport de Struts 2. 
	 * Se ejecuta con la petición inicial de subscripción y cada vez el usuario 
	 * cambia la opción de tipo de producto ya que en función de esta variarán los 
	 * subtipos disponibles.
	 * @return un string que indica la respuesta de la acción ejecutada sobre la petición del usuario
	 */
	public String execute(){	
		RellenoCombos rC = new RellenoCombos();	
		setListaProvincias(rC.getListaProvincias(true));
		setListaSubtipos(rC.getListaSubtipos(tipo));
		setListaTipos(Constantes.getListaTipos());
		
		return "success";
	
	}



	public int getIdProvincia() {
		return idProvincia;
	}



	public void setIdProvincia(int idProvincia) {
		this.idProvincia = idProvincia;
	}

	public String getTipo() {
		return tipo;
	}



	public void setTipo(String tipo) {
		this.tipo = tipo;
	}




	public int getIdSubtipo() {
		return idSubtipo;
	}



	public void setIdSubtipo(int idSubtipo) {
		this.idSubtipo = idSubtipo;
	}



	public List<Provincia> getListaProvincias() {
		return listaProvincias;
	}



	public void setListaProvincias(List<Provincia> listaProvincias) {
		this.listaProvincias = listaProvincias;
	}



	public List<String> getListaTipos() {
		return listaTipos;
	}



	public void setListaTipos(List<String> listaTipos) {
		this.listaTipos = listaTipos;
	}



	public List<Subtipo> getListaSubtipos() {
		return listaSubtipos;
	}



	public void setListaSubtipos(List<Subtipo> listaSubtipos) {
		this.listaSubtipos = listaSubtipos;
	}



	
}
